package Services

import (
	"errors"
	"gorm.io/gorm"
	"minititok/Entities"
	"minititok/databases"
)

func HandWatchVideo(HadWatch *Entities.HadWatch) error {
	var existing Entities.HadWatch

	// 使用First查找记录，如果记录不存在会返回ErrRecordNotFound
	result := databases.DB.
		Where("username = ? AND av = ?", HadWatch.Username, HadWatch.Av).
		First(&existing)

	// 检查记录是否已存在
	if result.Error == nil {
		// 记录已存在，直接返回（不再创建）
		return nil
	}

	// 如果是"未找到记录"错误，则创建新记录
	if errors.Is(result.Error, gorm.ErrRecordNotFound) {
		return databases.DB.Create(HadWatch).Error
	}

	// 其他类型的数据库错误
	return result.Error
}
